package com.ruoyi.system.domain.ro;

import com.ruoyi.common.valid.ValidUpdateGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.util.Date;

/**
 * 投诉信息业务对象 bs_complain
 *
 * @author ruoyi
 * @date 2023-11-20
 */

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ApiModel(value = "投诉信息表-投诉处理入参")
public class BsComplainHandleRO {

    /**
     * id
     */
    @ApiModelProperty(value = "投诉id")
    @NotNull(message = "企业id不能为空", groups = {ValidUpdateGroup.class})
    private Long id;

    @ApiModelProperty(value = "处理-投诉类型 0无理投诉 1有理投诉")
    @Pattern(regexp = "^(0)$|^(1)$", groups = {ValidUpdateGroup.class}, message = "handleComplainType 不合法")
    private String handleComplainType;
    /**
     * 处理-是否已回访 0未回访 1已回访
     */
    @ApiModelProperty(value = "处理-是否已回访 0未回访 1已回访")
    @Pattern(regexp = "^(0)$|^(1)$", groups = {ValidUpdateGroup.class}, message = "handleReturnVisit 不合法")
    private String handleReturnVisit;
    /**
     * 处理-备注
     */
    @ApiModelProperty(value = "处理-备注")
    private String handleRemark;
    /**
     * 处理-处理结果 0满意 1一般 2不满意
     */
    @ApiModelProperty(value = "处理-处理结果 0满意 1一般 2不满意")
    @Pattern(regexp = "^(0)$|^(1)$|^(2)$", groups = {ValidUpdateGroup.class}, message = "handleResult 不合法")
    private String handleResult;
    /**
     * 处理-是否需要再次处理 0不需要 1需要
     */
    @ApiModelProperty(value = "处理-是否需要再次处理 0不需要 1需要")
    @Pattern(regexp = "^(0)$|^(1)$", groups = {ValidUpdateGroup.class}, message = "handleNeedAgain 不合法")
    private String handleNeedAgain;


    /**
     * 处理-处理人
     */
    @ApiModelProperty(hidden = true)
    private String handleBy;
    /**
     * 处理-处理状态 0待处理 1需跟进 2已处理
     */
    @ApiModelProperty(hidden = true)
    private String handleStatus;
    /**
     * 处理-处理时间
     */
    @ApiModelProperty(hidden = true)
    private Date handleTime;

}
